package com.gitee.huanminabc.db_freedom;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gitee.huanminabc.db_freedom.wrapper.SqlWrapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 自由Mapper , 用于自定义查询
 * 参数入参不能100%保证安全,但是也大概处理了常见的SQL注入, 因为不同数据库的SQL注入方式不一样,所以不可能100%处理
 * DefaultSqlInjection 实现了常见的Sql注入处理,如果不够用,可以继承SqlInjection来实现自己的sql注入处理
 * @param <T>
 */
public interface FreedomMapper<T> extends BaseMapper<T> {
    //查询列表
    List<T> selectFreedomList(SqlWrapper<T> queryWrapper);
    //查询一个 ,如果有多个结果,则报错
    T selectFreedomOne(SqlWrapper<T> queryWrapper);
    //查询列表Map
    List<Map<String,Object>>selectFreedomMaps(SqlWrapper<T> queryWrapper);
    //查询一个Map ,如果有多个结果,则报错
    Map<String,Object> selectFreedomMap(SqlWrapper<T> queryWrapper);
    //执行
    int executeFreedom(SqlWrapper<T> queryWrapper);

}
